Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] WPF: accedere a variabili e controlli della MainWindow da Window secondaria
Forum - C# / VB.NET - [VB.NET] WPF: accedere a variabili e controlli della MainWindow da Window secondaria

Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 16:34
Martedì, 25/05/2010
Salve gente, non riesco a capire come accedere via codice a qualsiasi controllo o variabile che riguardi la mia MainWindow da una window secondaria.
Per aprirla io l'ho dichiarata nelle variabili di istanza

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim _wdwLista As New wdwLista



che viene visualizzata al click di un button

Codice sorgente - presumibilmente Plain Text

  1. _wdwLista.Show()



da questa per esempio voglio andare a modificare la proprietà Title della MainW, normalmente farei una cosa di questo tipo

Codice sorgente - presumibilmente Plain Text

  1. MainWindow.Title = "banane"



ma non mi elenca proprietà e controlli della window

aiutino?
thx :k:

PM Quote
Avatar
Federico_VbNet_Programmer (Normal User)
Expert


Messaggi: 222
Iscritto: 03/04/2010

Segnala al moderatore
Postato alle 16:37
Martedì, 25/05/2010
Tu vorresti che ti compaia in una lista tutti i controlli?
Spiegati meglio perfavore:D

PM Quote
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 16:46
Martedì, 25/05/2010
No, ho fatto un esempio in riferimento a winForms, dove mentre scrivi ti appare l'elenco.
Io voglio sapere in WPF come accedere ai controlli della MainWindow da un'altra

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 20:03
Mercoledì, 26/05/2010
ho dato un'occhiata all'msdn sembra sia sufficiente andare nel app.xaml e aggiungere:

Codice sorgente - presumibilmente Plain Text

  1. <Application.MainWindow>
  2.     <NavigationWindow Source="MainPage.xaml" Visibility="Visible"></NavigationWindow>
  3.   </Application.MainWindow>



E poi puoi accederci normalmente con Me.MainWindow

Ad ogni modo voler accedere direttamente ai controlli di una finestra un pò mi puzza, quando hai un pò di tempo documentati sul pattern Model-View-ViewModel molto usato in WPF.
Se cerchi "MVVM WPF" trovi molti esempi, articoli, video ecc...

PM Quote
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 14:31
Giovedì, 27/05/2010
Ho provato ad inserire il codice xaml, ma nada, non funge. Ovviamente ho cambiato

Codice sorgente - presumibilmente Plain Text

  1. Source="[nome della classe della MainWindow.xaml]"



ma non mi rende visibili le proprietà della window, e in piu genera un'eccezione all'avvio dell'applicazione:

Codice sorgente - presumibilmente Plain Text

  1. InvalidOperationException was unhandled
  2. L'elemento radice 'DMP.MainWindow' non è valido per lo spostamento.



:(

Ultima modifica effettuata da dedalux il 27/05/2010 alle 14:31
PM Quote
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 14:03
Lunedì, 31/05/2010
up! :(

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 19:52
Lunedì, 31/05/2010
ok ho fatto una prova.
nel App.xaml devi riferirti alla tua window direttamente così:

Codice sorgente - presumibilmente Plain Text

  1. <Application.MainWindow>
  2.         <local:MainWindow Visibility="Visible"></local:MainWindow>
  3.     </Application.MainWindow>



dove local è il riferimento xaml al tuo namespace e MainWindow il nome della classe che fa da finestra principale.
Ricordati di rimuovere l'attributo StartupUri che viene messo di default o la MainWindow partirà due volte.

Fatto questo potrai accedere alla MainWindow facendo:

Codice sorgente - presumibilmente Plain Text

  1. Application app = App.Current;
  2. Window w = app.MainWindow;



Ovviamente per poter usufruire dei controlli della tua finestra dovra fare un cast visto che MainWindow ti ritorna una generica Window WPF.

P.S ti suggerisco di tenere visual studio in inglese perchè cercando su google il testo di un errore hai molti più risultati di quello italiano

Ultima modifica effettuata da netarrow il 31/05/2010 alle 19:54
PM Quote